package com.baidu.networkdemo.api

import com.baidu.networkdemo.model.Movies
import retrofit2.Response
import retrofit2.http.GET
import retrofit2.http.Path
import retrofit2.http.Query
import retrofit2.http.QueryMap

/**
 * 暴露给外部的访问方法 【类似于Room里面的Dao】
 * 请求方式RequestMethod：
 * GET: 从网络中获取对应的数据 请求参数在URL上  xxx/login?name=jack&password=123
 *       只需要传递请求参数 而不需要上传文件时
 * POST: 从网络中获取对应的数据 请求参数在请求体中 xxx/login   body: name=jack&password=123
 *       需要上传大型数据（文件：视频 音频 表 图片）
 * DELETE： 删除服务器对应的数据库里面的数据
 * PUT： 更新服务器对应的数据 （全部更新）
 * PATCH： 更新服务器对应的数据 （部分更新）
 * HEAD: 只是得到响应的头部信息，不会下载数据
 *
 * xxx/login?name=xx&password=xx
 */
interface MovieApiInterface {
    @GET("movies?")
    suspend fun getMovies(@Query("page") index:Int): Response<Movies>

    /*
    @GET("login?")
    suspend fun login(@Query("name") name:String, @Query("password") pwd:String)
    */

    /*
    val queryMap = mapOf(
        Pair("name","jack"),
        Pair("password","123")
    )
    api.login(queryMap)
     */
    /*
    @GET("login?")
    suspend fun login(@QueryMap maps:Map<String,String>)
    */
    /*
    @GET("movies/1")
    suspend fun getMovieDetail()

    @GET("genres")
    suspend fun getGenres()
     */
}